home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / nspr / prcpucfg.h < prev    next >
C/C++ Source or Header  |  2006-04-20  |  19KB  |  708 lines

  1. /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
  2. /* ***** BEGIN LICENSE BLOCK *****
  3.  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
  4.  *
  5.  * The contents of this file are subject to the Mozilla Public License Version
  6.  * 1.1 (the "License"); you may not use this file except in compliance with
  7.  * the License. You may obtain a copy of the License at
  8.  * http://www.mozilla.org/MPL/
  9.  *
  10.  * Software distributed under the License is distributed on an "AS IS" basis,
  11.  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
  12.  * for the specific language governing rights and limitations under the
  13.  * License.
  14.  *
  15.  * The Original Code is the Netscape Portable Runtime (NSPR).
  16.  *
  17.  * The Initial Developer of the Original Code is
  18.  * Netscape Communications Corporation.
  19.  * Portions created by the Initial Developer are Copyright (C) 1998-2000
  20.  * the Initial Developer. All Rights Reserved.
  21.  *
  22.  * Contributor(s):
  23.  *
  24.  * Alternatively, the contents of this file may be used under the terms of
  25.  * either the GNU General Public License Version 2 or later (the "GPL"), or
  26.  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
  27.  * in which case the provisions of the GPL or the LGPL are applicable instead
  28.  * of those above. If you wish to allow use of your version of this file only
  29.  * under the terms of either the GPL or the LGPL, and not to allow others to
  30.  * use your version of this file under the terms of the MPL, indicate your
  31.  * decision by deleting the provisions above and replace them with the notice
  32.  * and other provisions required by the GPL or the LGPL. If you do not delete
  33.  * the provisions above, a recipient may use your version of this file under
  34.  * the terms of any one of the MPL, the GPL or the LGPL.
  35.  *
  36.  * ***** END LICENSE BLOCK ***** */
  37.  
  38. #ifndef nspr_cpucfg___
  39. #define nspr_cpucfg___
  40.  
  41. #ifndef XP_UNIX
  42. #define XP_UNIX
  43. #endif
  44.  
  45. #ifndef LINUX
  46. #define LINUX
  47. #endif
  48.  
  49. #define PR_AF_INET6 10  /* same as AF_INET6 */
  50.  
  51. #ifdef __powerpc64__
  52.  
  53. #undef  IS_LITTLE_ENDIAN
  54. #define IS_BIG_ENDIAN    1
  55. #define IS_64
  56.  
  57. #define PR_BYTES_PER_BYTE   1
  58. #define PR_BYTES_PER_SHORT  2
  59. #define PR_BYTES_PER_INT    4
  60. #define PR_BYTES_PER_INT64  8
  61. #define PR_BYTES_PER_LONG   8
  62. #define PR_BYTES_PER_FLOAT  4
  63. #define PR_BYTES_PER_DOUBLE 8
  64. #define PR_BYTES_PER_WORD   8
  65. #define PR_BYTES_PER_DWORD  8
  66.  
  67. #define PR_BITS_PER_BYTE    8
  68. #define PR_BITS_PER_SHORT   16
  69. #define PR_BITS_PER_INT     32
  70. #define PR_BITS_PER_INT64   64
  71. #define PR_BITS_PER_LONG    64
  72. #define PR_BITS_PER_FLOAT   32
  73. #define PR_BITS_PER_DOUBLE  64
  74. #define PR_BITS_PER_WORD    64
  75.  
  76. #define PR_BITS_PER_BYTE_LOG2   3
  77. #define PR_BITS_PER_SHORT_LOG2  4
  78. #define PR_BITS_PER_INT_LOG2    5
  79. #define PR_BITS_PER_INT64_LOG2  6
  80. #define PR_BITS_PER_LONG_LOG2   6
  81. #define PR_BITS_PER_FLOAT_LOG2  5
  82. #define PR_BITS_PER_DOUBLE_LOG2 6
  83. #define PR_BITS_PER_WORD_LOG2   6
  84.  
  85. #define PR_ALIGN_OF_SHORT   2
  86. #define PR_ALIGN_OF_INT     4
  87. #define PR_ALIGN_OF_LONG    8
  88. #define PR_ALIGN_OF_INT64   8
  89. #define PR_ALIGN_OF_FLOAT   4
  90. #define PR_ALIGN_OF_DOUBLE  8
  91. #define PR_ALIGN_OF_POINTER 8
  92. #define PR_ALIGN_OF_WORD    8
  93.  
  94. #define PR_BYTES_PER_WORD_LOG2   3
  95. #define PR_BYTES_PER_DWORD_LOG2  3
  96.  
  97. #elif defined(__powerpc__)
  98.  
  99. #undef  IS_LITTLE_ENDIAN
  100. #define IS_BIG_ENDIAN    1
  101.  
  102. #define PR_BYTES_PER_BYTE   1
  103. #define PR_BYTES_PER_SHORT  2
  104. #define PR_BYTES_PER_INT    4
  105. #define PR_BYTES_PER_INT64  8
  106. #define PR_BYTES_PER_LONG   4
  107. #define PR_BYTES_PER_FLOAT  4
  108. #define PR_BYTES_PER_DOUBLE 8
  109. #define PR_BYTES_PER_WORD   4
  110. #define PR_BYTES_PER_DWORD  8
  111.  
  112. #define PR_BITS_PER_BYTE    8
  113. #define PR_BITS_PER_SHORT   16
  114. #define PR_BITS_PER_INT     32
  115. #define PR_BITS_PER_INT64   64
  116. #define PR_BITS_PER_LONG    32
  117. #define PR_BITS_PER_FLOAT   32
  118. #define PR_BITS_PER_DOUBLE  64
  119. #define PR_BITS_PER_WORD    32
  120.  
  121. #define PR_BITS_PER_BYTE_LOG2   3
  122. #define PR_BITS_PER_SHORT_LOG2  4
  123. #define PR_BITS_PER_INT_LOG2    5
  124. #define PR_BITS_PER_INT64_LOG2  6
  125. #define PR_BITS_PER_LONG_LOG2   5
  126. #define PR_BITS_PER_FLOAT_LOG2  5
  127. #define PR_BITS_PER_DOUBLE_LOG2 6
  128. #define PR_BITS_PER_WORD_LOG2   5
  129.  
  130. #define PR_ALIGN_OF_SHORT   2
  131. #define PR_ALIGN_OF_INT     4
  132. #define PR_ALIGN_OF_LONG    4
  133. #define PR_ALIGN_OF_INT64   8
  134. #define PR_ALIGN_OF_FLOAT   4
  135. #define PR_ALIGN_OF_DOUBLE  8
  136. #define PR_ALIGN_OF_POINTER 4
  137. #define PR_ALIGN_OF_WORD    4
  138.  
  139. #define PR_BYTES_PER_WORD_LOG2   2
  140. #define PR_BYTES_PER_DWORD_LOG2  3
  141.  
  142. #elif defined(__alpha)
  143.  
  144. #define IS_LITTLE_ENDIAN 1
  145. #undef  IS_BIG_ENDIAN
  146. #define IS_64
  147.  
  148. #define PR_BYTES_PER_BYTE   1
  149. #define PR_BYTES_PER_SHORT  2
  150. #define PR_BYTES_PER_INT    4
  151. #define PR_BYTES_PER_INT64  8
  152. #define PR_BYTES_PER_LONG   8
  153. #define PR_BYTES_PER_FLOAT  4
  154. #define PR_BYTES_PER_DOUBLE 8
  155. #define PR_BYTES_PER_WORD   8
  156. #define PR_BYTES_PER_DWORD  8
  157.  
  158. #define PR_BITS_PER_BYTE    8
  159. #define PR_BITS_PER_SHORT   16
  160. #define PR_BITS_PER_INT     32
  161. #define PR_BITS_PER_INT64   64
  162. #define PR_BITS_PER_LONG    64
  163. #define PR_BITS_PER_FLOAT   32
  164. #define PR_BITS_PER_DOUBLE  64
  165. #define PR_BITS_PER_WORD    64
  166.  
  167. #define PR_BITS_PER_BYTE_LOG2   3
  168. #define PR_BITS_PER_SHORT_LOG2  4
  169. #define PR_BITS_PER_INT_LOG2    5
  170. #define PR_BITS_PER_INT64_LOG2  6
  171. #define PR_BITS_PER_LONG_LOG2   6
  172. #define PR_BITS_PER_FLOAT_LOG2  5
  173. #define PR_BITS_PER_DOUBLE_LOG2 6
  174. #define PR_BITS_PER_WORD_LOG2   6
  175.  
  176. #define PR_ALIGN_OF_SHORT   2
  177. #define PR_ALIGN_OF_INT     4
  178. #define PR_ALIGN_OF_LONG    8
  179. #define PR_ALIGN_OF_INT64   8
  180. #define PR_ALIGN_OF_FLOAT   4
  181. #define PR_ALIGN_OF_DOUBLE  8
  182. #define PR_ALIGN_OF_POINTER 8
  183. #define PR_ALIGN_OF_WORD    8
  184.  
  185. #define PR_BYTES_PER_WORD_LOG2  3
  186. #define PR_BYTES_PER_DWORD_LOG2 3
  187.  
  188. #elif defined(__ia64__)
  189.  
  190. #define IS_LITTLE_ENDIAN 1
  191. #undef  IS_BIG_ENDIAN
  192. #define IS_64
  193.  
  194. #define PR_BYTES_PER_BYTE   1
  195. #define PR_BYTES_PER_SHORT  2
  196. #define PR_BYTES_PER_INT    4
  197. #define PR_BYTES_PER_INT64  8
  198. #define PR_BYTES_PER_LONG   8
  199. #define PR_BYTES_PER_FLOAT  4
  200. #define PR_BYTES_PER_DOUBLE 8
  201. #define PR_BYTES_PER_WORD   8
  202. #define PR_BYTES_PER_DWORD  8
  203.  
  204. #define PR_BITS_PER_BYTE    8
  205. #define PR_BITS_PER_SHORT   16
  206. #define PR_BITS_PER_INT     32
  207. #define PR_BITS_PER_INT64   64
  208. #define PR_BITS_PER_LONG    64
  209. #define PR_BITS_PER_FLOAT   32
  210. #define PR_BITS_PER_DOUBLE  64
  211. #define PR_BITS_PER_WORD    64
  212.  
  213. #define PR_BITS_PER_BYTE_LOG2   3
  214. #define PR_BITS_PER_SHORT_LOG2  4
  215. #define PR_BITS_PER_INT_LOG2    5
  216. #define PR_BITS_PER_INT64_LOG2  6
  217. #define PR_BITS_PER_LONG_LOG2   6
  218. #define PR_BITS_PER_FLOAT_LOG2  5
  219. #define PR_BITS_PER_DOUBLE_LOG2 6
  220. #define PR_BITS_PER_WORD_LOG2   6
  221.  
  222. #define PR_ALIGN_OF_SHORT   2
  223. #define PR_ALIGN_OF_INT     4
  224. #define PR_ALIGN_OF_LONG    8
  225. #define PR_ALIGN_OF_INT64   8
  226. #define PR_ALIGN_OF_FLOAT   4
  227. #define PR_ALIGN_OF_DOUBLE  8
  228. #define PR_ALIGN_OF_POINTER 8
  229. #define PR_ALIGN_OF_WORD    8
  230.  
  231. #define PR_BYTES_PER_WORD_LOG2  3
  232. #define PR_BYTES_PER_DWORD_LOG2 3
  233.  
  234. #elif defined(__x86_64__)
  235.  
  236. #define IS_LITTLE_ENDIAN 1
  237. #undef  IS_BIG_ENDIAN
  238. #define IS_64
  239.  
  240. #define PR_BYTES_PER_BYTE   1
  241. #define PR_BYTES_PER_SHORT  2
  242. #define PR_BYTES_PER_INT    4
  243. #define PR_BYTES_PER_INT64  8
  244. #define PR_BYTES_PER_LONG   8
  245. #define PR_BYTES_PER_FLOAT  4
  246. #define PR_BYTES_PER_DOUBLE 8
  247. #define PR_BYTES_PER_WORD   8
  248. #define PR_BYTES_PER_DWORD  8
  249.  
  250. #define PR_BITS_PER_BYTE    8
  251. #define PR_BITS_PER_SHORT   16
  252. #define PR_BITS_PER_INT     32
  253. #define PR_BITS_PER_INT64   64
  254. #define PR_BITS_PER_LONG    64
  255. #define PR_BITS_PER_FLOAT   32
  256. #define PR_BITS_PER_DOUBLE  64
  257. #define PR_BITS_PER_WORD    64
  258.  
  259. #define PR_BITS_PER_BYTE_LOG2   3
  260. #define PR_BITS_PER_SHORT_LOG2  4
  261. #define PR_BITS_PER_INT_LOG2    5
  262. #define PR_BITS_PER_INT64_LOG2  6
  263. #define PR_BITS_PER_LONG_LOG2   6
  264. #define PR_BITS_PER_FLOAT_LOG2  5
  265. #define PR_BITS_PER_DOUBLE_LOG2 6
  266. #define PR_BITS_PER_WORD_LOG2   6
  267.  
  268. #define PR_ALIGN_OF_SHORT   2
  269. #define PR_ALIGN_OF_INT     4
  270. #define PR_ALIGN_OF_LONG    8
  271. #define PR_ALIGN_OF_INT64   8
  272. #define PR_ALIGN_OF_FLOAT   4
  273. #define PR_ALIGN_OF_DOUBLE  8
  274. #define PR_ALIGN_OF_POINTER 8
  275. #define PR_ALIGN_OF_WORD    8
  276.  
  277. #define PR_BYTES_PER_WORD_LOG2  3
  278. #define PR_BYTES_PER_DWORD_LOG2 3
  279.  
  280. #elif defined(__mc68000__)
  281.  
  282. #undef  IS_LITTLE_ENDIAN
  283. #define IS_BIG_ENDIAN 1
  284.  
  285. #define PR_BYTES_PER_BYTE   1
  286. #define PR_BYTES_PER_SHORT  2
  287. #define PR_BYTES_PER_INT    4
  288. #define PR_BYTES_PER_INT64  8
  289. #define PR_BYTES_PER_LONG   4
  290. #define PR_BYTES_PER_FLOAT  4
  291. #define PR_BYTES_PER_DOUBLE 8
  292. #define PR_BYTES_PER_WORD   4
  293. #define PR_BYTES_PER_DWORD  8
  294.  
  295. #define PR_BITS_PER_BYTE    8
  296. #define PR_BITS_PER_SHORT   16
  297. #define PR_BITS_PER_INT     32
  298. #define PR_BITS_PER_INT64   64
  299. #define PR_BITS_PER_LONG    32
  300. #define PR_BITS_PER_FLOAT   32
  301. #define PR_BITS_PER_DOUBLE  64
  302. #define PR_BITS_PER_WORD    32
  303.  
  304. #define PR_BITS_PER_BYTE_LOG2   3
  305. #define PR_BITS_PER_SHORT_LOG2  4
  306. #define PR_BITS_PER_INT_LOG2    5
  307. #define PR_BITS_PER_INT64_LOG2  6
  308. #define PR_BITS_PER_LONG_LOG2   5
  309. #define PR_BITS_PER_FLOAT_LOG2  5
  310. #define PR_BITS_PER_DOUBLE_LOG2 6
  311. #define PR_BITS_PER_WORD_LOG2   5
  312.  
  313. #define PR_ALIGN_OF_SHORT   2
  314. #define PR_ALIGN_OF_INT     2
  315. #define PR_ALIGN_OF_LONG    2
  316. #define PR_ALIGN_OF_INT64   2
  317. #define PR_ALIGN_OF_FLOAT   2
  318. #define PR_ALIGN_OF_DOUBLE  2
  319. #define PR_ALIGN_OF_POINTER 2
  320. #define PR_ALIGN_OF_WORD    2
  321.  
  322. #define PR_BYTES_PER_WORD_LOG2   2
  323. #define PR_BYTES_PER_DWORD_LOG2  3
  324.  
  325. #elif defined(__sparc__)
  326.  
  327. #undef    IS_LITTLE_ENDIAN
  328. #define    IS_BIG_ENDIAN 1
  329.  
  330. #define PR_BYTES_PER_BYTE   1
  331. #define PR_BYTES_PER_SHORT  2
  332. #define PR_BYTES_PER_INT    4
  333. #define PR_BYTES_PER_INT64  8
  334. #define PR_BYTES_PER_LONG   4
  335. #define PR_BYTES_PER_FLOAT  4
  336. #define PR_BYTES_PER_DOUBLE 8
  337. #define PR_BYTES_PER_WORD   4
  338. #define PR_BYTES_PER_DWORD  8
  339.  
  340. #define PR_BITS_PER_BYTE    8
  341. #define PR_BITS_PER_SHORT   16
  342. #define PR_BITS_PER_INT     32
  343. #define PR_BITS_PER_INT64   64
  344. #define PR_BITS_PER_LONG    32
  345. #define PR_BITS_PER_FLOAT   32
  346. #define PR_BITS_PER_DOUBLE  64
  347. #define PR_BITS_PER_WORD    32
  348.  
  349. #define PR_BITS_PER_BYTE_LOG2   3
  350. #define PR_BITS_PER_SHORT_LOG2  4
  351. #define PR_BITS_PER_INT_LOG2    5
  352. #define PR_BITS_PER_INT64_LOG2  6
  353. #define PR_BITS_PER_LONG_LOG2   5
  354. #define PR_BITS_PER_FLOAT_LOG2  5
  355. #define PR_BITS_PER_DOUBLE_LOG2 6
  356. #define PR_BITS_PER_WORD_LOG2   5
  357.  
  358. #define PR_ALIGN_OF_SHORT   2
  359. #define PR_ALIGN_OF_INT     4
  360. #define PR_ALIGN_OF_LONG    4
  361. #define PR_ALIGN_OF_INT64   8
  362. #define PR_ALIGN_OF_FLOAT   4
  363. #define PR_ALIGN_OF_DOUBLE  8
  364. #define PR_ALIGN_OF_POINTER 4
  365. #define PR_ALIGN_OF_WORD    4
  366.  
  367. #define PR_BYTES_PER_WORD_LOG2   2
  368. #define PR_BYTES_PER_DWORD_LOG2  3
  369.  
  370. #elif defined(__i386__)
  371.  
  372. #define IS_LITTLE_ENDIAN 1
  373. #undef  IS_BIG_ENDIAN
  374.  
  375. #define PR_BYTES_PER_BYTE   1
  376. #define PR_BYTES_PER_SHORT  2
  377. #define PR_BYTES_PER_INT    4
  378. #define PR_BYTES_PER_INT64  8
  379. #define PR_BYTES_PER_LONG   4
  380. #define PR_BYTES_PER_FLOAT  4
  381. #define PR_BYTES_PER_DOUBLE 8
  382. #define PR_BYTES_PER_WORD   4
  383. #define PR_BYTES_PER_DWORD  8
  384.  
  385. #define PR_BITS_PER_BYTE    8
  386. #define PR_BITS_PER_SHORT   16
  387. #define PR_BITS_PER_INT     32
  388. #define PR_BITS_PER_INT64   64
  389. #define PR_BITS_PER_LONG    32
  390. #define PR_BITS_PER_FLOAT   32
  391. #define PR_BITS_PER_DOUBLE  64
  392. #define PR_BITS_PER_WORD    32
  393.  
  394. #define PR_BITS_PER_BYTE_LOG2   3
  395. #define PR_BITS_PER_SHORT_LOG2  4
  396. #define PR_BITS_PER_INT_LOG2    5
  397. #define PR_BITS_PER_INT64_LOG2  6
  398. #define PR_BITS_PER_LONG_LOG2   5
  399. #define PR_BITS_PER_FLOAT_LOG2  5
  400. #define PR_BITS_PER_DOUBLE_LOG2 6
  401. #define PR_BITS_PER_WORD_LOG2   5
  402.  
  403. #define PR_ALIGN_OF_SHORT   2
  404. #define PR_ALIGN_OF_INT     4
  405. #define PR_ALIGN_OF_LONG    4
  406. #define PR_ALIGN_OF_INT64   4
  407. #define PR_ALIGN_OF_FLOAT   4
  408. #define PR_ALIGN_OF_DOUBLE  4
  409. #define PR_ALIGN_OF_POINTER 4
  410. #define PR_ALIGN_OF_WORD    4
  411.  
  412. #define PR_BYTES_PER_WORD_LOG2   2
  413. #define PR_BYTES_PER_DWORD_LOG2  3
  414.  
  415. #elif defined(__mips__)
  416.  
  417. #ifdef __MIPSEB__
  418. #define IS_BIG_ENDIAN 1
  419. #undef  IS_LITTLE_ENDIAN
  420. #elif defined(__MIPSEL__)
  421. #define IS_LITTLE_ENDIAN 1
  422. #undef  IS_BIG_ENDIAN
  423. #else
  424. #error "Unknown MIPS endianness."
  425. #endif
  426.  
  427. #define PR_BYTES_PER_BYTE   1
  428. #define PR_BYTES_PER_SHORT  2
  429. #define PR_BYTES_PER_INT    4
  430. #define PR_BYTES_PER_INT64  8
  431. #define PR_BYTES_PER_LONG   4
  432. #define PR_BYTES_PER_FLOAT  4
  433. #define PR_BYTES_PER_DOUBLE 8
  434. #define PR_BYTES_PER_WORD   4
  435. #define PR_BYTES_PER_DWORD  8
  436.  
  437. #define PR_BITS_PER_BYTE    8
  438. #define PR_BITS_PER_SHORT   16
  439. #define PR_BITS_PER_INT     32
  440. #define PR_BITS_PER_INT64   64
  441. #define PR_BITS_PER_LONG    32
  442. #define PR_BITS_PER_FLOAT   32
  443. #define PR_BITS_PER_DOUBLE  64
  444. #define PR_BITS_PER_WORD    32
  445.  
  446. #define PR_BITS_PER_BYTE_LOG2   3
  447. #define PR_BITS_PER_SHORT_LOG2  4
  448. #define PR_BITS_PER_INT_LOG2    5
  449. #define PR_BITS_PER_INT64_LOG2  6
  450. #define PR_BITS_PER_LONG_LOG2   5
  451. #define PR_BITS_PER_FLOAT_LOG2  5
  452. #define PR_BITS_PER_DOUBLE_LOG2 6
  453. #define PR_BITS_PER_WORD_LOG2   5
  454.  
  455. #define PR_ALIGN_OF_SHORT   2
  456. #define PR_ALIGN_OF_INT     4
  457. #define PR_ALIGN_OF_LONG    4
  458. #define PR_ALIGN_OF_INT64   8
  459. #define PR_ALIGN_OF_FLOAT   4
  460. #define PR_ALIGN_OF_DOUBLE  8
  461. #define PR_ALIGN_OF_POINTER 4
  462. #define PR_ALIGN_OF_WORD    4
  463.  
  464. #define PR_BYTES_PER_WORD_LOG2   2
  465. #define PR_BYTES_PER_DWORD_LOG2  3
  466.  
  467. #elif defined(__arm__)
  468.  
  469. #define IS_LITTLE_ENDIAN 1
  470. #undef  IS_BIG_ENDIAN
  471.  
  472. #define PR_BYTES_PER_BYTE   1
  473. #define PR_BYTES_PER_SHORT  2
  474. #define PR_BYTES_PER_INT    4
  475. #define PR_BYTES_PER_INT64  8
  476. #define PR_BYTES_PER_LONG   4
  477. #define PR_BYTES_PER_FLOAT  4
  478. #define PR_BYTES_PER_DOUBLE 8
  479. #define PR_BYTES_PER_WORD   4
  480. #define PR_BYTES_PER_DWORD  8
  481.  
  482. #define PR_BITS_PER_BYTE    8
  483. #define PR_BITS_PER_SHORT   16
  484. #define PR_BITS_PER_INT     32
  485. #define PR_BITS_PER_INT64   64
  486. #define PR_BITS_PER_LONG    32
  487. #define PR_BITS_PER_FLOAT   32
  488. #define PR_BITS_PER_DOUBLE  64
  489. #define PR_BITS_PER_WORD    32
  490.  
  491. #define PR_BITS_PER_BYTE_LOG2   3
  492. #define PR_BITS_PER_SHORT_LOG2  4
  493. #define PR_BITS_PER_INT_LOG2    5
  494. #define PR_BITS_PER_INT64_LOG2  6
  495. #define PR_BITS_PER_LONG_LOG2   5
  496. #define PR_BITS_PER_FLOAT_LOG2  5
  497. #define PR_BITS_PER_DOUBLE_LOG2 6
  498. #define PR_BITS_PER_WORD_LOG2   5
  499.  
  500. #define PR_ALIGN_OF_SHORT   2
  501. #define PR_ALIGN_OF_INT     4
  502. #define PR_ALIGN_OF_LONG    4
  503. #define PR_ALIGN_OF_INT64   4
  504. #define PR_ALIGN_OF_FLOAT   4
  505. #define PR_ALIGN_OF_DOUBLE  4
  506. #define PR_ALIGN_OF_POINTER 4
  507. #define PR_ALIGN_OF_WORD    4
  508.  
  509. #define PR_BYTES_PER_WORD_LOG2   2
  510. #define PR_BYTES_PER_DWORD_LOG2  3
  511.  
  512. #elif defined(__hppa__)
  513.  
  514. #undef  IS_LITTLE_ENDIAN
  515. #define IS_BIG_ENDIAN    1
  516.  
  517. #define PR_BYTES_PER_BYTE   1
  518. #define PR_BYTES_PER_SHORT  2
  519. #define PR_BYTES_PER_INT    4
  520. #define PR_BYTES_PER_INT64  8
  521. #define PR_BYTES_PER_LONG   4
  522. #define PR_BYTES_PER_FLOAT  4
  523. #define PR_BYTES_PER_DOUBLE 8
  524. #define PR_BYTES_PER_WORD   4
  525. #define PR_BYTES_PER_DWORD  8
  526.  
  527. #define PR_BITS_PER_BYTE    8
  528. #define PR_BITS_PER_SHORT   16
  529. #define PR_BITS_PER_INT     32
  530. #define PR_BITS_PER_INT64   64
  531. #define PR_BITS_PER_LONG    32
  532. #define PR_BITS_PER_FLOAT   32
  533. #define PR_BITS_PER_DOUBLE  64
  534. #define PR_BITS_PER_WORD    32
  535.  
  536. #define PR_BITS_PER_BYTE_LOG2   3
  537. #define PR_BITS_PER_SHORT_LOG2  4
  538. #define PR_BITS_PER_INT_LOG2    5
  539. #define PR_BITS_PER_INT64_LOG2  6
  540. #define PR_BITS_PER_LONG_LOG2   5
  541. #define PR_BITS_PER_FLOAT_LOG2  5
  542. #define PR_BITS_PER_DOUBLE_LOG2 6
  543. #define PR_BITS_PER_WORD_LOG2   5
  544.  
  545. #define PR_ALIGN_OF_SHORT   2
  546. #define PR_ALIGN_OF_INT     4
  547. #define PR_ALIGN_OF_LONG    4
  548. #define PR_ALIGN_OF_INT64   8
  549. #define PR_ALIGN_OF_FLOAT   4
  550. #define PR_ALIGN_OF_DOUBLE  8
  551. #define PR_ALIGN_OF_POINTER 4
  552. #define PR_ALIGN_OF_WORD    4
  553.  
  554. #define PR_BYTES_PER_WORD_LOG2   2
  555. #define PR_BYTES_PER_DWORD_LOG2  3
  556.  
  557. #elif defined(__s390x__)
  558.  
  559. #define IS_BIG_ENDIAN 1
  560. #undef  IS_LITTLE_ENDIAN
  561. #define IS_64
  562.  
  563. #define PR_BYTES_PER_BYTE   1
  564. #define PR_BYTES_PER_SHORT  2
  565. #define PR_BYTES_PER_INT    4
  566. #define PR_BYTES_PER_INT64  8
  567. #define PR_BYTES_PER_LONG   8
  568. #define PR_BYTES_PER_FLOAT  4
  569. #define PR_BYTES_PER_DOUBLE 8
  570. #define PR_BYTES_PER_WORD   8
  571. #define PR_BYTES_PER_DWORD  8
  572.  
  573. #define PR_BITS_PER_BYTE    8
  574. #define PR_BITS_PER_SHORT   16
  575. #define PR_BITS_PER_INT     32
  576. #define PR_BITS_PER_INT64   64
  577. #define PR_BITS_PER_LONG    64
  578. #define PR_BITS_PER_FLOAT   32
  579. #define PR_BITS_PER_DOUBLE  64
  580. #define PR_BITS_PER_WORD    64
  581.  
  582. #define PR_BITS_PER_BYTE_LOG2   3
  583. #define PR_BITS_PER_SHORT_LOG2  4
  584. #define PR_BITS_PER_INT_LOG2    5
  585. #define PR_BITS_PER_INT64_LOG2  6
  586. #define PR_BITS_PER_LONG_LOG2   6
  587. #define PR_BITS_PER_FLOAT_LOG2  5
  588. #define PR_BITS_PER_DOUBLE_LOG2 6
  589. #define PR_BITS_PER_WORD_LOG2   6
  590.  
  591. #define PR_ALIGN_OF_SHORT   2
  592. #define PR_ALIGN_OF_INT     4
  593. #define PR_ALIGN_OF_LONG    8
  594. #define PR_ALIGN_OF_INT64   8
  595. #define PR_ALIGN_OF_FLOAT   4
  596. #define PR_ALIGN_OF_DOUBLE  8
  597. #define PR_ALIGN_OF_POINTER 8
  598. #define PR_ALIGN_OF_WORD    8
  599.  
  600. #define PR_BYTES_PER_WORD_LOG2   3
  601. #define PR_BYTES_PER_DWORD_LOG2  3
  602.  
  603. #elif defined(__s390__)
  604.  
  605. #define IS_BIG_ENDIAN 1
  606. #undef  IS_LITTLE_ENDIAN
  607.  
  608. #define PR_BYTES_PER_BYTE   1
  609. #define PR_BYTES_PER_SHORT  2
  610. #define PR_BYTES_PER_INT    4
  611. #define PR_BYTES_PER_INT64  8
  612. #define PR_BYTES_PER_LONG   4
  613. #define PR_BYTES_PER_FLOAT  4
  614. #define PR_BYTES_PER_DOUBLE 8
  615. #define PR_BYTES_PER_WORD   4
  616. #define PR_BYTES_PER_DWORD  8
  617.  
  618. #define PR_BITS_PER_BYTE    8
  619. #define PR_BITS_PER_SHORT   16
  620. #define PR_BITS_PER_INT     32
  621. #define PR_BITS_PER_INT64   64
  622. #define PR_BITS_PER_LONG    32
  623. #define PR_BITS_PER_FLOAT   32
  624. #define PR_BITS_PER_DOUBLE  64
  625. #define PR_BITS_PER_WORD    32
  626.  
  627. #define PR_BITS_PER_BYTE_LOG2   3
  628. #define PR_BITS_PER_SHORT_LOG2  4
  629. #define PR_BITS_PER_INT_LOG2    5
  630. #define PR_BITS_PER_INT64_LOG2  6
  631. #define PR_BITS_PER_LONG_LOG2   5
  632. #define PR_BITS_PER_FLOAT_LOG2  5
  633. #define PR_BITS_PER_DOUBLE_LOG2 6
  634. #define PR_BITS_PER_WORD_LOG2   5
  635.  
  636. #define PR_ALIGN_OF_SHORT   2
  637. #define PR_ALIGN_OF_INT     4
  638. #define PR_ALIGN_OF_LONG    4
  639. #define PR_ALIGN_OF_INT64   4
  640. #define PR_ALIGN_OF_FLOAT   4
  641. #define PR_ALIGN_OF_DOUBLE  4
  642. #define PR_ALIGN_OF_POINTER 4
  643. #define PR_ALIGN_OF_WORD    4
  644.  
  645. #define PR_BYTES_PER_WORD_LOG2   2
  646. #define PR_BYTES_PER_DWORD_LOG2  3
  647.  
  648. #else
  649.  
  650. #error "Unknown CPU architecture"
  651.  
  652. #endif
  653.  
  654. #define    HAVE_LONG_LONG
  655. #if PR_ALIGN_OF_DOUBLE == 8
  656. #define HAVE_ALIGNED_DOUBLES
  657. #endif
  658. #if PR_ALIGN_OF_INT64 == 8
  659. #define HAVE_ALIGNED_LONGLONGS
  660. #endif
  661.  
  662. #ifndef NO_NSPR_10_SUPPORT
  663.  
  664. #define BYTES_PER_BYTE        PR_BYTES_PER_BYTE
  665. #define BYTES_PER_SHORT     PR_BYTES_PER_SHORT
  666. #define BYTES_PER_INT         PR_BYTES_PER_INT
  667. #define BYTES_PER_INT64        PR_BYTES_PER_INT64
  668. #define BYTES_PER_LONG        PR_BYTES_PER_LONG
  669. #define BYTES_PER_FLOAT        PR_BYTES_PER_FLOAT
  670. #define BYTES_PER_DOUBLE    PR_BYTES_PER_DOUBLE
  671. #define BYTES_PER_WORD        PR_BYTES_PER_WORD
  672. #define BYTES_PER_DWORD        PR_BYTES_PER_DWORD
  673.  
  674. #define BITS_PER_BYTE        PR_BITS_PER_BYTE
  675. #define BITS_PER_SHORT        PR_BITS_PER_SHORT
  676. #define BITS_PER_INT        PR_BITS_PER_INT
  677. #define BITS_PER_INT64        PR_BITS_PER_INT64
  678. #define BITS_PER_LONG        PR_BITS_PER_LONG
  679. #define BITS_PER_FLOAT        PR_BITS_PER_FLOAT
  680. #define BITS_PER_DOUBLE        PR_BITS_PER_DOUBLE
  681. #define BITS_PER_WORD        PR_BITS_PER_WORD
  682.  
  683. #define BITS_PER_BYTE_LOG2    PR_BITS_PER_BYTE_LOG2
  684. #define BITS_PER_SHORT_LOG2    PR_BITS_PER_SHORT_LOG2
  685. #define BITS_PER_INT_LOG2    PR_BITS_PER_INT_LOG2
  686. #define BITS_PER_INT64_LOG2    PR_BITS_PER_INT64_LOG2
  687. #define BITS_PER_LONG_LOG2    PR_BITS_PER_LONG_LOG2
  688. #define BITS_PER_FLOAT_LOG2    PR_BITS_PER_FLOAT_LOG2
  689. #define BITS_PER_DOUBLE_LOG2     PR_BITS_PER_DOUBLE_LOG2
  690. #define BITS_PER_WORD_LOG2    PR_BITS_PER_WORD_LOG2
  691.  
  692. #define ALIGN_OF_SHORT        PR_ALIGN_OF_SHORT
  693. #define ALIGN_OF_INT        PR_ALIGN_OF_INT
  694. #define ALIGN_OF_LONG        PR_ALIGN_OF_LONG
  695. #define ALIGN_OF_INT64        PR_ALIGN_OF_INT64
  696. #define ALIGN_OF_FLOAT        PR_ALIGN_OF_FLOAT
  697. #define ALIGN_OF_DOUBLE        PR_ALIGN_OF_DOUBLE
  698. #define ALIGN_OF_POINTER    PR_ALIGN_OF_POINTER
  699. #define ALIGN_OF_WORD        PR_ALIGN_OF_WORD
  700.  
  701. #define BYTES_PER_WORD_LOG2    PR_BYTES_PER_WORD_LOG2
  702. #define BYTES_PER_DWORD_LOG2    PR_BYTES_PER_DWORD_LOG2
  703. #define WORDS_PER_DWORD_LOG2    PR_WORDS_PER_DWORD_LOG2
  704.  
  705. #endif /* NO_NSPR_10_SUPPORT */
  706.  
  707. #endif /* nspr_cpucfg___ */
  708.